package com.anzuo.app.util

/**
 * Resource - 资源封装类
 * 用于封装网络请求或数据库操作的结果状态
 * 
 * @param T 数据类型
 * 
 * @author AnZuo
 * @date 2024
 */
sealed class Resource<out T> {
    /**
     * 加载中
     */
    data class Loading(val isLoading: Boolean = true) : Resource<Nothing>()

    /**
     * 成功
     */
    data class Success<out T>(val data: T) : Resource<T>()

    /**
     * 错误
     */
    data class Error(val exception: Throwable) : Resource<Nothing>()

    /**
     * 空数据
     */
    object Empty : Resource<Nothing>()
}

